package com.aqarat.entity;

import java.sql.Timestamp;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;

import com.core.entity.BaseEntity;
import com.core.entity.Lookup;

/**
 * Entity implementation class for Entity: Apartment
 * 
 */
@Entity
@Table(name = "apartment")
public class Apartment extends BaseEntity {
	private static final long serialVersionUID = 1L;

	@Id
	@Column(name = "recid", unique = true, nullable = false)
	@GeneratedValue(strategy = GenerationType.AUTO)
	private Long recid;

	@Column(name = "floor_id")
	private Long floorId;

	@ManyToOne
	@JoinColumn(name = "floor_id", insertable = false, updatable = false)
	private Floor floor;

	private Long no;

	private Double area;

	@Column(name = "construct_status")
	private Long constructStatus;
	@ManyToOne
	@JoinColumn(name = "construct_status", insertable = false, updatable = false)
	private Lookup constructtStatus;


	@Column(name = "reserve_status")
	private Long reserveStatus;

	@ManyToOne
	@JoinColumn(name = "reserve_status", insertable = false, updatable = false)
	private Lookup reservationStatus;
	
	private Double price;

	@Column(name = "sale_price")
	private Double salePrice;
	
	@Column(name = "first_payment")
	private Double firstPayment;

	@Column(name = "contract_date")
	private Date contractDate;

	@Column(name = "no_of_payments")
	private Long noOfPayments;

	@Column(name = "customer_id")
	private Long customerId;

	@ManyToOne
	@JoinColumn(name = "customer_id", insertable = false, updatable = false)
	private Customer customer;

	@Column(name = "taxes_status")
	private Long taxesStatus;
	
	@ManyToOne
	@JoinColumn(name = "taxes_status", insertable = false, updatable = false)
	private Lookup taxessStatus;

	public Apartment() {
		super();
	}

	@Override
	public String toString() {
		return "Apartment [recid=" + recid + ", floorId=" + floorId
				+ ", floor=" + floor + ", no=" + no + ", area=" + area
				+ ", constructStatus=" + constructStatus + ", reserveStatus="
				+ reserveStatus + ", price=" + price + ", salePrice="
				+ salePrice + ", contractDate=" + contractDate
				+ ", noOfPayments=" + noOfPayments + ", customerId="
				+ customerId + ", customer=" + customer + ", taxesStatus="
				+ taxesStatus + "]";
	}

	public Long getRecid() {
		return this.recid;
	}

	public void setRecid(Long recid) {
		this.recid = recid;
	}

	public Long getFloorId() {
		return this.floorId;
	}

	public void setFloorId(Long floorId) {
		this.floorId = floorId;
	}

	public Floor getFloor() {
		return floor;
	}

	public void setFloor(Floor floor) {
		this.floor = floor;
	}

	public Long getNo() {
		return this.no;
	}

	public void setNo(Long no) {
		this.no = no;
	}

	public Double getArea() {
		return this.area;
	}

	public void setArea(Double area) {
		this.area = area;
	}

	public Long getConstructStatus() {
		return this.constructStatus;
	}

	public void setConstructStatus(Long constructStatus) {
		this.constructStatus = constructStatus;
	}

	public void setConstructtStatus(Lookup constructtStatus) {
		this.constructtStatus = constructtStatus;
	}

	public Lookup getConstructtStatus() {
		return constructtStatus;
	}

	public Long getReserveStatus() {
		return this.reserveStatus;
	}

	public void setReserveStatus(Long reserveStatus) {
		this.reserveStatus = reserveStatus;
	}

	public void setReservationStatus(Lookup reservationStatus) {
		this.reservationStatus = reservationStatus;
	}

	public Lookup getReservationStatus() {
		return reservationStatus;
	}

	public Double getPrice() {
		return this.price;
	}

	public void setPrice(Double price) {
		this.price = price;
	}

	public Double getSalePrice() {
		return this.salePrice;
	}

	public final Double getFirstPayment() {
		return firstPayment;
	}

	public final void setFirstPayment(Double firstPayment) {
		this.firstPayment = firstPayment;
	}

	public void setSalePrice(Double salePrice) {
		this.salePrice = salePrice;
	}

	public Date getContractDate() {
		return this.contractDate;
	}

	public void setContractDate(Date contractDate) {
		this.contractDate = contractDate;
	}

	public Long getNoOfPayments() {
		return this.noOfPayments;
	}

	public void setNoOfPayments(Long noOfPayments) {
		this.noOfPayments = noOfPayments;
	}

	public Long getCustomerId() {
		return this.customerId;
	}

	public void setCustomerId(Long customerId) {
		this.customerId = customerId;
	}

	public Customer getCustomer() {
		return customer;
	}

	public void setCustomer(Customer customer) {
		this.customer = customer;
	}

	public Long getTaxesStatus() {
		return this.taxesStatus;
	}

	public void setTaxesStatus(Long taxesStatus) {
		this.taxesStatus = taxesStatus;
	}

	public void setTaxessStatus(Lookup taxessStatus) {
		this.taxessStatus = taxessStatus;
	}

	public Lookup getTaxessStatus() {
		return taxessStatus;
	}

}
